// 技能列表 包括qwer 以及被动
import { DataTypes } from "sequelize";
import sequelize from "../db/seq.js";
const Hero = sequelize.define("Hero", { name: DataTypes.STRING });

export const Skill = sequelize.define("skills", {
  // 技能ID（自增主键）
  skillId: {
    type: DataTypes.INTEGER,
    primaryKey: true,
    autoIncrement: true,
    allowNull: false,
  },
  // 技能类型（枚举：passive, q, w, e, r）
  skillType: {
    type: DataTypes.ENUM("passive", "q", "w", "e", "r"),
    allowNull: false,
    validate: {
      isIn: [["passive", "q", "w", "e", "r"]], // 确保值在枚举范围内
    },
  },
  // 技能名称
  skillName: {
    type: DataTypes.STRING, // 根据实际需求设置长度
    allowNull: false,
  },
  // 技能描述（长文本）
  skillDescription: {
    type: DataTypes.TEXT,
    allowNull: false,
  },
  // 技能图片
  skillImage: {
    type: DataTypes.STRING,
    allowNull: false,
  },

  // 关联的英雄ID（外键）
  heroId: {
    type: DataTypes.INTEGER,
    allowNull: false,
    references: {
      model: Hero,
      key: "heroId",
    },
    onDelete: "CASCADE", // 明确设置级联删除
    onUpdate: "CASCADE", // 明确设置级联更新
  },
});
// 定义关联关系
Skill.belongsTo(Hero, { foreignKey: "heroId" });

// Skill.sync({ force: true });
export default Skill;
